Many applications today are developed in a client-server fashion, where client applications running on client devices may communicate through a network (e.g., the Internet) with a server application running on a server. In many applications, the server may store various resources that may be provided to the client applications upon request. Some resources (e.g., images, static webpages, etc.) may be static and may not change or change very rarely. For such resources, various caching or proxy mechanisms exist where a cache or a proxy may store a “local” copy of the resource and provide it to the client application upon request without retrieving the resource from the server, thereby increasing the application's responsiveness, and reducing the load on the server and on the network.